The present invention relates to a robot control system for controlling articulated robots, such as legged walking robots, using a software program, and more particularly, it relates to a robot control system for controlling articulated robots, in which the hardware configuration might be significantly modified according to attachment/detachment or replacement of moving units such as legs and a head, using a software program. More specifically, the present invention relates to a robot control system for controlling articulated robots using a software program which comprises a combination of a software layer having a high dependency upon the hardware configuration and a software layer having no dependency upon the hardware configuration, and to a program interface between the software layers, and more particularly, it relates to a robot control system for controlling articulated robots by dynamically modifying a combination of a hardware-dependent software layer, such as middleware, and a hardware-independent software layer, such as an application, and to a program interface between the software layers.
A mechanical apparatus which utilizes electric or magnetic actions to perform motions which resemble motions of human beings is referred to as a xe2x80x9crobot.xe2x80x9d It is said that the word robot is etymologically derived from the Slavic word ROBOTA (slave machine). In our country, robots have been widely used since the end of the 1960s, but most of them have been manipulators for the purpose of automated or unmanned production operations at factory or industrial robots such as conveyor robots.
Recently, research and development have advanced on the structure and stable walk control of legged mobile robots including pet robots which simulate the physical mechanisms or motions of four-legged walking animals such as dogs and cats, and xe2x80x9chuman shapedxe2x80x9d or xe2x80x9chuman typexe2x80x9d robots (humanoid robots) which simulate the physical mechanisms or motions of biped walking animals such as human beings or apes. Thus, expectations on the practical use thereof have increased. These legged mobile robots are less stable and have more difficult posture control and walk control than crawler robots, but are advantageous in that they can realize flexible walking and running motions such as moving up and down the stairs and leaping over obstacles.
Stationary type robots, like arm type robots, which are installed and used in a particular place, perform activities only in fixed and local working spaces such as part assembling or selecting jobs. On the other hand, mobile robots, whose working spaces are not restrictive, freely move on a predetermined path or out of a path to take on predetermined or arbitrary human operations or to offer various services on behalf of human beings, dogs, or other living things.
One use of legged mobile robots is to take on various difficult tasks in industrial activities, production activities, etc. For example, dangerous jobs or difficult jobs such as maintenance jobs in nuclear power plants, thermal power plants, or petrochemical plants, part conveying and assembling jobs at manufacturing factory, cleaning of tall buildings, and rescues at fires or other sites are taken on, etc.
Other uses of legged mobile robots include living uses, i.e., xe2x80x9ccoexistentxe2x80x9d uses with human beings or xe2x80x9centertainmentxe2x80x9d uses. Robots of this type emulate a variety of emotional expressions using the motion mechanisms or the extremities of relatively intelligent legged walking animals such as human beings and dogs (pets). Not only are pre-entered motion patterns strictly performed, but vivid expressions which dynamically respond to words or attitudes (such as xe2x80x9cpraise,xe2x80x9d xe2x80x9cscolding,xe2x80x9d xe2x80x9chitting,xe2x80x9d etc.) received from a user (or any other robot) are also demanded.
Conventional toy machines have a fixed relationship between a user operation and a responsive motion, and the motions of the toy cannot be modified according to the preference of users. As a result, users soon get tired of such toys that repeat the same motions.
On the other hand, intelligent robots comprise a behavior model or a learning model which originates from motions, and allows the models to be modified based on external input information, such as voices, pictures, or touch, to determine a motion, thereby realizing an autonomous thought or motion control. Robots which are provided with an emotion model or an instinct model can develop autonomous behaviors according to the robots"" own emotions or instinct. The robots are equipped with an image input apparatus or voice input/output apparatus to perform an image recognition process or a voice recognition process, thereby also making it possible to realize realistic communication with human beings at a higher intelligence level.
Recent legged mobile robots have high information processing ability, and these intelligent robots themselves can be thus considered as a kind of computing system.
For example, robots maintain models of various rules for motions, such as an emotion model, a behavior model, and a learning model. According to each of the models, the robots make a behavior plan in response to external factors such as a user""s action, and perform the behavior plan by driving jointed actuators or through voice outputs, which can be then fed back to the user. A motion control of the robots for making a behavior plan or performing it on the machine is implemented in the form of executing a program code (for example, an application etc.) on the computing system.
A major difference between a general computing system and a robot is that the former has fewer differences in the kind or combination of hardware components constituting the system (that is, hardware configuration) from system to system, while the latter has a hardware configuration which significantly varies from system to system. For example, there are a variety of kinds of mobile robots, including a robot having movable units attached to a body formed of a head, legs, and a tail, and a robot consisting of a body and a wheel.
In a computing system in which the installed hardware configuration is relatively uniform from system to system, the design of software executed on the system may not be relatively affected by hardware. On the contrary, in of the latter robot case, particularly, a control software layer, such as middleware in which hardware operation is executed, has an extremely high dependency upon hardware.
For example, if a moving control of a robot is considered, the criteria of determining the stability during moving and walking is completely different whether moving means comprises movable legs, or a wheel, or two legs or four legs, and an operating environment in which the application is executed is significantly different from system to system.
If the software development of robots is considered, in view of this circumstance, it seems efficient to discriminate a software layer having a relatively low dependency upon hardware from a software layer having a high dependency upon hardware. In other words, hardware-independent software and hardware-dependent software are separately developed, and a combination thereof is modified to provide a product lineup having a variety of different characteristics and capabilities.
The hardware-independent software is, for example, application layer software in which processing which is less associated with hardware operations such as an emotion model, a behavior model, and a learning model is performed. The hardware-dependent software is, for example, middleware layer software formed of a group of software modules which provide basic features of a robot 1, and the configuration of each of the modules is affected by hardware attributes including the mechanical or electrical characteristics or specifications and the shape of the robot. Roughly, the middleware is functionally classified into recognition middleware which processes and recognizes an input of a sensor of each portion, and then notifies the upper application of this, and by output middleware which performs a control to drive hardware, such as driving of jointed actuators, according to the commands issued by the application.
For example, the same application is executable on robots having different hardware configurations by introducing middleware suitable for the hardware configurations into the robots.
Meanwhile, the manner in which software is introduced into various computing systems represented by robots can include supplying new software via a removable medium, and downloading software over a network. For example, a memory slot in which a removable medium such as a memory card or a memory stick is loaded is provided in a portion on the robot body, thereby only requiring a task of inserting/removing the removable medium to/from the slot in order to readily introduce new software such as an application or middleware into the robot.
To introduce new software into a control system of a robot comprising a plurality of software layers, the newly introduced software must be kept at a good compatibility, i.e., must be compatible, with the other software layers.
More specifically, in order to permit any combination of an application and middleware, a format for which data or commands are exchanged between the software layers, that is, an interface between programs, must be established.
An object of the present invention is to provide a superior robot control system for controlling articulated robots, such as legged walking robots, using a software program.
Another object of the present invention is to provide a superior robot control system for controlling articulated robots, in which the hardware configuration might be significantly modified according to attachment/detachment or replacement of moving units such as legs and a head, using a software program.
Another object of the present invention is to provide a superior robot control system for controlling articulated robots using a software program which comprises a combination of a software layer having a high dependency upon the hardware configuration and a software layer having no dependency upon the hardware configuration, and to provide a program interface between the software layers.
Another object of the present invention is to provide a superior robot control system for controlling articulated robots by dynamically modifying a combination of a hardware-dependent software layer, such as middleware, and a hardware-independent software layer, such as an application, and to provide a program interface between the software layers.
The present invention has been made in view of the foregoing problems, and a first aspect thereof provides a robot control system for controlling motions of a robot which comprise a combination of a plurality of hardware components including:
a first control unit for performing a process which does not depend upon hardware configuration information of the robot;
a second control unit for performing a process which depends upon the hardware configuration information of the robot; and
a communication unit for providing communication between the first and second control units.
As used herein, xe2x80x9csystemxe2x80x9d refers to a logical group of a plurality of apparatuses (or function modules which perform specific functions), and does not particularly refer to the fact that the apparatuses or function modules are accommodated in a single housing or not.
The first control unit used herein is implemented by an application layer software which does not depend upon the hardware configuration. The second control unit is implemented by middleware layer software having a high dependency upon the hardware configuration. The communication unit is mounted in the form of a program interface which realizes a data exchanging process between the application and the middleware.
According to the robot control system in the first aspect of the present invention, the communication unit is an interface between the application layer and the middleware layer, and the format for which data or commands are exchanged between the software layers is established, so that an arbitrary combination of the application and the middleware can be permitted.
The first control unit is realized by, for example, executing application software which determines a behavior sequence of the robot using a model in which the a configuration or motion of the robot is abstracted. The application software includes an emotion model which models an emotion of the robot, an instinct model which models the instinct, a learning model which sequentially stores a causal relationship between an external event and a behavior taken by the robot, a behavior model which models a behavior pattern, etc., by way of example.
The second control unit is realized by executing middleware software which provides a basic onboard function of the robot. The middleware software is formed of, for example, a recognition processor unit which receives input data detected from hardware of the robot via a system control layer to detect external factors such as distance detection, posture detection, and contact, taking account of the hardware configuration, and an output processor unit for processing an onboard motion control for the robot based on a command from the application.
The communication unit notifies the first control unit of the information detected by the recognition processor unit, and transfers the command of the first control unit to the output processor unit.
The communication unit includes an information communication interface which aids in notifying the first control unit of the information from the second control unit, command interface which aids the first control unit in controlling the second control unit, etc.
The communication unit may include an information database in which the first control unit semantically designates information to be retrieved from the second control unit. In such a case, a target record in the information database is registered, so that target information can be transferred from the second control unit to the first control unit.
The communication unit may include a command database in which the first control unit semantically designates a command to be issued to the second control unit. In such a case, the first control unit can use the command database to semantically select a command.
The communication unit may include a feedback interface which aids in notifying the second control unit of the recognition result of the first control unit, and which aids in notifying the first control unit of the relationship between the recognition result and the behavior feasible in the second control unit.
The first control unit and the second control unit may be structured so as to be capable of being independently handled.
The communication unit may notify the first control unit of a system event detected by the second control unit.
The communication unit may also include means for notifying said first control unit of a shutdown factor which is detected by said second control unit, and means for notifying said second control unit of a resume condition with respect to the shutdown which is set by said first control unit. It may further include means for notifying said first control unit of a recommended resume condition which is set by said second control unit.
According to the robot control system in accordance with the first aspect of the present invention, an interface and a database for semantically performing operation are prepared between a middleware layer which depends upon the hardware configuration of a robot and an application layer which does not depend upon the hardware configuration, thereby making it possible to always guarantee normal operation even if a combination of the middleware and the application which is to be introduced onto the robot is modified. The application can acquire appropriate input data via the middleware, and can issue an appropriate command.
A second aspect of the present invention provides a robot control method for controlling motions of a robot which comprise a combination of a plurality of hardware components using a first control module for performing a process which does not depend upon hardware configuration information of the robot, and a second control module for performing a process which depends upon the hardware configuration information of the robot,
the robot control method including a communication step of providing communication between the first control module and the second control module.
As used herein, the first control module is implemented by application layer software which does not depend upon the hardware configuration. The second control module is implemented by middleware layer software having a high dependency upon the hardware configuration. The communication step can be implemented in the form of a program interface which realizes a data exchanging process between the application and the middleware.
According to the robot control method in the second aspect of the present invention, in the communication step, an interface between an application layer and a middleware layer is realized to establish the format for which data or commands are exchanged between the software layers, thereby permitting an arbitrary combination of the application and the middleware.
The first control module is implemented by application software which determines a behavior sequence of the robot using a model in which a configuration or motion of the robot is abstracted. The application software is formed of, for example, an emotion model which models an emotion of the robot, an instinct model which models the instinct, a learning model which sequentially stores a causal relationship between an external event and a behavior taken by the robot, a behavior model which models a behavior pattern, etc.
The second control module is implemented by middleware software which provides a basic onboard function of the robot. The middleware is formed of, for example, a recognition processor module which receives input data detected from hardware of the robot via a system control layer to detect external factors such as distance detection, posture detection, and contact, taking account of the hardware configuration, and an output processor module for processing an onboard motion control for the robot based on a command from the application.
In the communication step, the first control module may be notified of the information detected by executing the recognition processor module, and the command by executing the first control module may be transferred to the output processor module.
In the communication step, an information communication interface which aids in notifying said first control module of the information from the second control module may be used.
In the communication step, a command interface which aids the first control module in controlling the second control module may be used.
In the communication step, an information database in which the first control module semantically designates information to be retrieved from the second control module may be used. In such a case, a target record in the information database is registered, so that the target information can be transferred from the second control module to the first control module.
In the communication step, using a command database in which the first control module semantically designates a command to be issued to the second control module, the first control module may semantically select the command.
In the communication step, a feedback loop may be executed to notify the second control module of the recognition result of the first control module, and to notify the first control module of the relationship between the recognition result and the behavior feasible in the second control module.
The first control module and the second control module may be structured so as to be capable of being independently handled.
The communication step may include a substep of notifying the first control module of a system event detected by the second control module.
The communication step may include a substep of notifying the first control module of a shutdown factor which is detected by the second control module, and a substep of notifying the second control module of a resume condition with respect to the shutdown which is set by the first control module. The communication step may further include a substep of notifying the first control module of a recommended resume condition which is set by the second control module.
According to the robot control method in the second aspect of the present invention, an interface and a database for semantically performing operation are prepared between a middleware layer which depends upon the hardware configuration of a robot and an application layer which does not depend upon the hardware configuration, thereby making it possible to always guarantee normal operation even if a combination of the middleware and the application which is to be introduced onto the robot is modified. The application can acquire appropriate input data via the middleware, and can issue an appropriate command.
A third aspect of the present invention provides a robot control system which is configured by an object-oriented program, including:
an application object for executing a process which does not depend upon a hardware configuration of a robot;
a middleware object for executing a process which depends upon the hardware configuration of the robot;
an information database registered with information which is used for said middleware object and which corresponds to a semantic command from said application object; and
object control means for controlling communication between said application object and said middleware object on the basis of said information database.
The information database may hierarchically describe a semantic aspect of the registered information. Preferably, the format of said information database at least includes an information identification information field, a classification field, and a sensor information identification field.
Other objects, features, and advantages will be apparent from a more detailed description of the following embodiments of the present invention or in conjunction with the accompanying drawings.